package org.fuyd.dao;

import java.util.List;

import org.fuyd.exception.MoreCustomerException;
import org.fuyd.model.Customer;

public interface CustomerDao {

  /**
   * 持久层添加客户
   * 
   * @param customer org.fuyd.model.Customer对象
   */
  public void add(Customer customer);

  /**
   * 持久层根据用户名判断用户是否存在，该方法主要用于用户注册。
   * 
   * @param username 用户名
   * @return true表示用户存在，false表示用户不存在。
   */
  public boolean exist(String username);

  /**
   * 持久层根据用户名密码判断用户是否存在，该方法主要用于用户登录。
   * 
   * @param username 用户名
   * @param password 密码
   * @return true表示用户存在，false表示用户不存在。
   */
  public boolean exit(String username, String password) throws MoreCustomerException;

  /**
   * 持久层查找所有客户
   * 
   * @return 返回一个list<Customer>
   */
  public List<Customer> findAll();

  /**
   * 持久层根据id查找客户
   * 
   * @param id 客户ID
   * @return 一个客户。由于ID唯一，所以不返回list
   */
  public Customer findById(int id);

}
